﻿/************************************************************************
** 文  件：
**	EventRecordService.h
** 功  能：
**	事件录像服务，提供事件录像增删改查服务
** 作  者：
**	email:lixx2048@163.com
**  wechat:lixiang6153
**  QQ:941415509
** 日  期：
**	2024/03/15	14:00:00
** 说  明：
**	无
** 版  本：
**	2024/03/15	14:00:00		1.0		lixx2048@163.com
/************************************************************************/
#pragma once
#include "BaseService.h"
#include "../db/IDbBase.h"
#include "../entity/EventRecordInfo.h"


class EventRecordService
	: public IBaseService<EventRecordInfo>
{
public:
	EventRecordService();
	virtual ~EventRecordService();

public:
	// 表是否存在
	bool Exist();
	// 创建表
	bool Create();
	// 创建索引
	bool CreateIndex();
	// 增加记录
	bool Add(EventRecordInfo& itme);
	// 删除记录
	bool Delete(EventRecordInfo& item, bool delFromDB = true);
	// 查询数量
	int Count();
	int Count(std::string deviceId, std::string startTime, std::string endTime, std::string upload);
	// 查找记录
	bool FindPage(int pageIndex, int pageSize, std::vector<EventRecordInfo>& list);
	bool FindPage(int pageIndex, int pageSize, 
				  std::string deviceId, std::string startTime, 
				  std::string endTime, std::string upload, 
				  std::vector<EventRecordInfo>& list);
	// 查找记录
	bool Find(EventRecordInfo& item);
	// 更新记录
	bool Update(EventRecordInfo& item);

protected:
	// 行记录转实体记录
	void ToRecord(IDbBasePtr db, EventRecordInfo& item);
};

typedef std::shared_ptr<EventRecordService> EventRecordServicePtr;